﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace MontagsmalerApp.Views
{
	/// <summary>
	/// Interaktionslogik für SpielstandWindow.xaml
	/// </summary>
	public partial class SpielstandWindow : Window
	{
		public const int MaxBalkenlaenge = 500;
		private int gesamtpunktzahl = 0;

		public SpielstandWindow(List<Platzierung> platzierungen)
		{
			InitializeComponent();

			this.DataContext = platzierungen;

			// Gesamtpunktzahl ermitteln
			foreach (var item in platzierungen)
				gesamtpunktzahl = gesamtpunktzahl + item.Punktzahl;
		}

		private void Window_Loaded(object sender, RoutedEventArgs e)
		{
			ZeigeNurPlatzTexte();
			ZeigeNurBalken();
			ZeigeNurTeamnamen();
		}

		public Rectangle ErstellePunktebalken(int platz)
		{
			Rectangle r = new Rectangle();
			r.Name = "recPlatz" + platz;
			r.Width = 20;
			r.Height = 20;

			return r;
		}

		public void ZeigeNurPlatzTexte()
		{
			if (DataContext != null)
			{
				List<Platzierung> platzierungen = (List<Platzierung>)DataContext;

				try
				{
					Platzierung p = platzierungen[0];
					txtPlatz1.Visibility = Visibility.Visible;
					p = platzierungen[1];
					txtPlatz2.Visibility = Visibility.Visible;
					p = platzierungen[2];
					txtPlatz3.Visibility = Visibility.Visible;
					p = platzierungen[3];
					txtPlatz4.Visibility = Visibility.Visible;
					p = platzierungen[4];
					txtPlatz5.Visibility = Visibility.Visible;
					p = platzierungen[5];
					txtPlatz6.Visibility = Visibility.Visible;
					p = platzierungen[6];
					txtPlatz7.Visibility = Visibility.Visible;
					p = platzierungen[7];
					txtPlatz8.Visibility = Visibility.Visible;
				}
				catch (Exception ex)
				{
				}
			}
		}

		public void ZeigeNurBalken()
		{
			if (DataContext != null && gesamtpunktzahl > 0)
			{
				try
				{
					List<Platzierung> platzierungen = (List<Platzierung>)DataContext;
					Platzierung p = platzierungen[0];
					stack1.Visibility = Visibility.Visible;
					balkenPlatz1.Width = p.Punktzahl * MaxBalkenlaenge / gesamtpunktzahl;
					txtPunkte1.Text = p.Punktzahl.ToString(); 
					p = platzierungen[1];
					stack2.Visibility = Visibility.Visible;
					balkenPlatz2.Width = p.Punktzahl * MaxBalkenlaenge / gesamtpunktzahl;
					txtPunkte2.Text = p.Punktzahl.ToString(); 
					p = platzierungen[2];
					stack3.Visibility = Visibility.Visible;
					balkenPlatz3.Width = p.Punktzahl * MaxBalkenlaenge / gesamtpunktzahl;
					txtPunkte3.Text = p.Punktzahl.ToString(); 
					p = platzierungen[3];
					stack4.Visibility = Visibility.Visible;
					balkenPlatz4.Width = p.Punktzahl * MaxBalkenlaenge / gesamtpunktzahl;
					txtPunkte4.Text = p.Punktzahl.ToString(); 
					p = platzierungen[4];
					stack5.Visibility = Visibility.Visible;
					balkenPlatz5.Width = p.Punktzahl * MaxBalkenlaenge / gesamtpunktzahl;
					txtPunkte5.Text = p.Punktzahl.ToString(); 
					p = platzierungen[5];
					stack6.Visibility = Visibility.Visible;
					balkenPlatz6.Width = p.Punktzahl * MaxBalkenlaenge / gesamtpunktzahl;
					txtPunkte6.Text = p.Punktzahl.ToString(); 
					p = platzierungen[6];
					stack7.Visibility = Visibility.Visible;
					balkenPlatz7.Width = p.Punktzahl * MaxBalkenlaenge / gesamtpunktzahl;
					txtPunkte7.Text = p.Punktzahl.ToString(); 
					p = platzierungen[7];
					stack8.Visibility = Visibility.Visible;
					balkenPlatz8.Width = p.Punktzahl * MaxBalkenlaenge / gesamtpunktzahl;
					txtPunkte8.Text = p.Punktzahl.ToString(); 
				}
				catch (Exception ex)
				{

				}
			}
		}

		public void ZeigeNurTeamnamen()
		{
			if (DataContext != null)
			{
				try
				{
					List<Platzierung> platzierungen = (List<Platzierung>)DataContext;
					Platzierung p = platzierungen[0];
					txtPlatz1Name.Visibility = Visibility.Visible;
					txtPlatz1Name.Text = p.Name;
					p = platzierungen[1];
					txtPlatz2Name.Visibility = Visibility.Visible;
					txtPlatz2Name.Text = p.Name;
					p = platzierungen[2];
					txtPlatz3Name.Visibility = Visibility.Visible;
					txtPlatz3Name.Text = p.Name;
					p = platzierungen[3];
					txtPlatz4Name.Visibility = Visibility.Visible;
					txtPlatz4Name.Text = p.Name;
					p = platzierungen[4];
					txtPlatz5Name.Visibility = Visibility.Visible;
					txtPlatz5Name.Text = p.Name;
					p = platzierungen[5];
					txtPlatz6Name.Visibility = Visibility.Visible;
					txtPlatz6Name.Text = p.Name;
					p = platzierungen[6];
					txtPlatz7Name.Visibility = Visibility.Visible;
					txtPlatz7Name.Text = p.Name;
					p = platzierungen[7];
					txtPlatz8Name.Visibility = Visibility.Visible;
					txtPlatz8Name.Text = p.Name;
				}
				catch (Exception ex)
				{

				}
			}
		}
	}
}
